package com.ys.erp.entity.data.bean;

import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;

/**
 * @author minamiyama
 * @date 2025/5/16 11:24
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("t_mall_king_kong_config")
public class MallKingKongConfig {

    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @TableField("no")
    private String no;

    /**
     * 标题
     */
    @TableField("title")
    private String title;

    /**
     * 副标题
     */
    @TableField(value = "sub_title", updateStrategy = FieldStrategy.IGNORED)
    private String subTitle;

    /**
     * 背景图片
     */
    @TableField(value = "background_image", updateStrategy = FieldStrategy.IGNORED)
    private String backgroundImage;

    /**
     * 图标地址
     */
    @TableField("icon")
    private String icon;

    /**
     * 类型
     * BIG_BRAND_PURCHASE：买大牌
     * CASH_ONLY：现金购
     * BRAND_HALL：品牌馆
     */
    @TableField("type")
    private String type;


    /**
     * 商品配置类型 仅限现金购有 其他类型为null
     */
    @TableField("goods_setting_type")
    private String goodsSettingType;

    /**
     * 排序
     */
    @TableField("sort")
    private Integer sort;

    /**
     * 状态 0：禁用 1：启用
     */
    @TableField("status")
    private Integer status;

    /**
     * 操作人员ID
     */
    @TableField("emp_id")
    private Long empId;

    /**
     * 操作人员名称
     */
    @TableField("emp_name")
    private String empName;

    /**
     * 操作人员手机号
     */
    @TableField("emp_phone")
    private String empPhone;

    /**
     * 版本号
     */
    @TableField("version")
    @Version
    private Integer version;

    /**
     * 创建时间
     */
    @TableField("create_time")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @TableField(value = "update_time", update = "now()")
    private LocalDateTime updateTime;


    @AllArgsConstructor
    @Getter
    public enum Enums {

        BIG_BRAND_PURCHASE,
        CASH_ONLY,
        BRAND_HALL,
        MANUAL,
        AUTO;

    }

    public static final Map<String, String> ENUM_MAP = new HashMap<>();

    static {
        ENUM_MAP.put(Enums.BIG_BRAND_PURCHASE.toString(), "买大牌");
        ENUM_MAP.put(Enums.CASH_ONLY.toString(), "现金购");
        ENUM_MAP.put(Enums.BRAND_HALL.toString(), "品牌馆");
        ENUM_MAP.put(Enums.MANUAL.toString(), "手动配置");
        ENUM_MAP.put(Enums.AUTO.toString(), "自动配置");
    }

}
